package com.sinog.core.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;

/**
 * @desc 系统管理 - 资源管理 - 资源管理 - Resource
 * @author zy
 * @date 2019年7月1日 13点06分
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(of = "id", callSuper = false)
@TableName("tbsys_resource")
public class Resource extends Model<Resource> implements Cloneable {

    private static final long serialVersionUID = 1L;
    /**
     * 资源id
     */
    @TableId(type = IdType.INPUT)
    private Long id;
    /**
     * 上级资源id
     */
    private Long pid;
    /**
     * 资源名称
     */
    private String name;
    /**
     * 资源类型(tbsys_restype)
     */
    private Integer type;
    /**
     * 对齐方式 -1无 0左 1右
     */
    private Integer align;
    /**
     * 排序
     */
    private Integer sn;
    /**
     * 组件宽度
     */
    private Integer width;
    /**
     * 组建高度
     */
    private Integer height;
    /**
     * 映射字段
     */
    private String field;
    /**
     * 提示信息
     */
    private String prompt;
    /**
     * 组件图标
     */
    private String icon;
    /**
     * 流程id
     */
    private String flowid;
    /**
     * 资源动作
     */
    private String action;
    /**
     * 内嵌的js
     */
    private String outjs;
    /**
     * 组件扩展属性
     */
    private String extension;
    /**
     * 组件备注
     */
    private String remark;
    /**
     * 树形结构的子元素
     */
    @TableField(exist = false)
    private List<Resource> children;
    /**
     * 解析页面上的 组件宽高属性，并赋值给自己的 width 和 height
     */
    @TableField(exist = false)
    private String size;
    /**
     * 加载资源树时需要使用的临时字段
     */
    @TableField(exist = false)
    private String text;
    /**
     * 是否叶子节点
     */
    @TableField(exist = false)
    private String isLeaf;

    @Override
    protected Serializable pkVal() {
        return id;
    }

    /**
     * 描述
     * @return Resource
     */
    @Override
    public Resource clone() throws CloneNotSupportedException {
        return (Resource)super.clone();
    }
}